sysroot: Handle deleting directories in /etc
authorColin Walters <walters@verbum.org>
Tue, 15 Oct 2013 18:11:43 +0000 (14:11 -0400)
committerColin Walters <walters@verbum.org>
Tue, 15 Oct 2013 18:56:43 +0000 (14:56 -0400)
We need to use the full shutil_rm_rf() in order to actually delete
complete directories.

Test suite code based on a patch from Sjoerd Simons <sjored@luon.net>

https://bugzilla.gnome.org/show_bug.cgi?id=710097

src/libostree/ostree-sysroot-deploy.c
tests/libtest.sh
tests/test-admin-deploy-1.sh

index f53bc2c2a971288349d4323d28d94adb7abe2722..e36a6193bfed492f9414f47c1aeba8a600215606 100644 (file)
@@ -161,7 +161,7 @@ merge_etc_changes (GFile          *orig_etc,
       g_assert (path);
       target_file = g_file_resolve_relative_path (new_etc, path);
 
-      if (!ot_gfile_ensure_unlinked (target_file, cancellable, error))
+      if (!gs_shutil_rm_rf (target_file, cancellable, error))
         goto out;
     }
 
index 05cc01a4d76ded64e43631cbd70ad778804b1582..8c5a784102d84a71fbe65f2d0bfc99e1a6f48dd9 100644 (file)
@@ -218,6 +218,8 @@ EOF
     echo "a config file" > usr/etc/aconfigfile
     mkdir -p usr/etc/NetworkManager
     echo "a default daemon file" > usr/etc/NetworkManager/nm.conf
+    mkdir -p usr/etc/testdirectory
+    echo "a default daemon file" > usr/etc/testdirectory/test
 
     ostree --repo=${test_tmpdir}/testos-repo commit -b testos/buildmaster/x86_64-runtime -s "Build"
     
index 02f5b2085154863b4b6916fc7060912f19ab9888..e591f9bd7fbcbb061cd69775910722eecb3e6422 100755 (executable)
@@ -101,6 +101,7 @@ ostree admin --sysroot=sysroot status
 echo "ok fourth deploy (retain)"
 
 echo "a new local config file" > sysroot/ostree/deploy/testos/deploy/${rev}.3/etc/a-new-config-file
+rm -r  sysroot/ostree/deploy/testos/deploy/${rev}.3/etc/testdirectory
 rm sysroot/ostree/deploy/testos/deploy/${rev}.3/etc/aconfigfile
 ln -s /ENOENT sysroot/ostree/deploy/testos/deploy/${rev}.3/etc/a-new-broken-symlink
 ostree admin --sysroot=sysroot deploy --retain --os=testos testos:testos/buildmaster/x86_64-runtime